      Global Functions    C:\Users\KatachiHome\AppData\Roaming\MAXON\CINEMA 4D R13_05DFD2A0\plugins\DPIT Plants & Effex 2.0\res\help\EN\Effex\fx_api_functions.html   t       .                                                                                                                                                                                           :   default.tif                  Object Header               [code]Bool InitEffex(void)   "This must be called before you do anything with the Effex API. It is enough to call it before you Register your plugins.
<br>See the SDK project's main.cpp provided with the Effex API for an example.
<br></br>
<b>Returns</b><br>
true if the Effex library has been successfully initialised.                   [code]void OpenCandidatePopup(std::vector&lt; FXBase* &gt;& items,  FXTypeInfos& types, BaseObject* caller, LONG linkfield_id, bool is_inexclude)   This call allows you to support candidate buttons much like Effex does.
<br></br>
<b>Parameters</b><BR>
<i>std::vector&lt; FXBase* &gt;& items</i>:<br>
Should contain the nodes in the scene the user can insert into the corresponding port (link field).<br>
You can use GetNodes to fill the vector container.
<BR></br>
<i>FXTypeInfos& items</i>:<br>
Should contain the plugin ids and names of the nodes that are compatible with the corresponding port
and that are displayed in the 'Create..' submenu of the Candidate popup.
<BR></br>
<i>BaseObject* caller</i>:<br>
The node interface you are calling the Candidate button from
<BR></br>
<i>LONG linkfield_id</i>:<br>
The element id of the target link field (so the ID assigned in the .res/.h resource files of your node interface.
<BR></br>
<i>bool is_inexclude</i>:<br>
Pass true if the target port is an inexclude list instead of a simple link field.                   S[code]FXBase*	GetNode				(FXScene* scene, BaseObject* node, NodeRetrieveType type)   Finds any Effex node inside a specific Effex Scene.
<br></br>
<b>Returns</b><br>
the Effex node if found. Otherwise it returns nullptr.
<br></br>
<b>Parameters</b><BR>
<i>FXScene* scene</i>:<br>
The FXScene to find the node in.
<BR></br>
<i>BaseObject* node</i>:<br>
The node interface of the node to be found.
<BR></br>
<i>NodeRetrieveType type</i>:<br>
the type of node to search for.                   J[code]void PhysicalToWorld		(FXScene* scene, vector3d& physical_position)   Converts a position given in physical space to the Cinema 4D world space.
<br></br>
<b>Parameters</b><BR>
<i>FXScene* scene</i>:<br>
The FXScene where the conversion shall take place (and that defines the physical space of the input position)
<BR></br>
<i>vector3d& physical_position</i>:<br>
Pass the physical position which as a result will be in world space after calling the function.                  G[code]void WorldToPhysical		(FXScene* scene, vector3d& world_position)   sConverts a position given in Cinema 4D world space to the Effex physical space..
<br></br>
<b>Parameters</b><BR>
<i>FXScene* scene</i>:<br>
The FXScene where the conversion shall take place (and that defines the physical space)
<BR></br>
<i>vector3d& world_position</i>:<br>
Pass the world position which as a result will be in physical space after calling the function.                   x[code]void GetNodes(FXScene* scene, InExcludeData* filter, std::vector&lt; FXBase* &gt;& result, NodeRetrieveType type)   Finds several Effex nodes of a certain type inside a specific Effex Scene.
<br></br>
<b>Parameters</b><BR>
<i>FXScene* scene</i>:<br>
The FXScene to find the nodes in.
<BR></br>
<i>InExlcudeData* filter</i>:<br>
Pass a list of node interfaces to filter the found nodes.<br>
Passing nullptr will find all nodes of the specified NodeRetrieveType available in the scene.
<BR></br>
<i>std::vector&lt; FXBase* &gt;& result </i>:<br>
Filled with the found nodes.
<BR></br>
<i>NodeRetrieveType type</i>:<br>
the type of node to search for.                                              